let express = require("express");
let {readFun,wirteFun, writeFun} = require("./utlis/readOrWrite.js");
let bodyParser = require("body-parser");
let web = express();
web.use(express.static("public"));
web.use(bodyParser.urlencoded({extended:true}));
// 获取学生信息列表接口
web.get("/student/list",async (req,res)=>{
   try{
     // 读取学生信息
     let data = await readFun("./data/stu.json"); 
     res.send({code:0,data:data})
   }catch(err){
     res.send({code:1,data:"获取列表失败",msg:err})
   }
})
// 添加学生接口
web.post("/add/stu",async (req,res)=>{
    // 获取前端传递过来学生信息
    let {name,age,sex,phone} = req.body;
    console.log(name,age,sex,phone)
    // 读取学生信息列表
    let data = await readFun("./data/stu.json");
    console.log(data)
    let index = data.findIndex(item=>{
        return item.name === name;
    })
    if(index!=-1){
        // 当前学生信息已添加
        res.send({code:0,msg:"当前学生已存在"})
        return
    };
    let stuInfo = {
        name,
        age,
        sex,
        phone
    }
    // 将学生信息添加到数组中
    data.push(stuInfo);
    // 将最新的数据列表 data重新写入 stu.json
    let data1 = await writeFun("./data/stu.json",JSON.stringify(data));
    res.send({
        code:0,
        msg:"添加成功"
    })
})

// 删除学生信息接口
web.post("/remove/stu",async (req,res)=>{
    // 获取前端传递过来的要删除的学生索引
    let {index} = req.body;
    let data = await readFun('./data/stu.json');
    console.log(data);
    // splice 删除数组元素 参数一 从哪个索引开始删除 参数二删除几个 
    // 会改变原数组
    data.splice(index,1)
    await writeFun("./data/stu.json",JSON.stringify(data));
    res.send({code:0,msg:"删除成功"})
})  
web.listen(8080,()=>{
    console.log("服务端已启动........")
})